﻿/*!
 \file main.c
 \brief Главный файл проекта. Выполнение программы начинается здесь.
*/

#include <windows.h>
#include <locale.h>
#include <stdio.h>
#include "scanner.h"

void StartSyntaxAnalysis(void);       /* parser.c */

/** 
 \fn void main(int argc, char *argv[])
 Отсюда начинается выполнение программы.
 \param argc Количество параметров командной строки плюс имя самой программы.
 \param argv Массив строк, каждый элемент которого - параметр командной строки.
*/
void main(int argc, char *argv[])
{
 setlocale(LC_ALL,"Russian");
 printf("Компилятор Oberon.\n\n");
 printf("Параметры:\n");
 printf(" oberwin.exe <Имя исходного файла>\n");
 printf("             <Имя объектного файла>\n");
 printf("             [Имя символьного файла]\n\n");

 /* Первые два аргумента: имена исходного и объектного файлов.
    Они должны быть указаны всегда. Два аргумента плюс имя компилятора.
    Итого: число аргументов должно быть не менее трех. */
 if (argc < 3)
  printf("Ошибка: Не указано имя исходного или объектного файла!\n");
 else
 {
  OpenSourceFile(argv[1]);
  StartSyntaxAnalysis();
  CloseSourceFile();
 }
}